﻿
#region 文件信息
/*----------------------------------------------------------------
// 
// 文件名称：	
// 文件功能描述：	
// 设计要求：	
//
// 文 件 名：    BaseCodeGenerator
// 创建者：      杨程
// 创建日期：	    2023/2/6 16:59:38

//----------------------------------------------------------------*/
#endregion

using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Text;
using System;
using System.Collections.Generic;
using System.Text;



namespace Vampirewal.Core.SourceGeneratorMvvm.Generators;

/// <summary>
/// 基础代码生成器
/// </summary>
[Generator]
public partial class BaseCodeGenerator : ISourceGenerator
{
    public void Execute(GeneratorExecutionContext context)
    {
        Dictionary<string, string> attributes = new Dictionary<string, string>();
        attributes.Add("RelayCommand", Utils.GetTemplateByFileName("RelayCommandTemplate.RelayCommand.txt"));
        attributes.Add("NotifyBase", Utils.GetTemplateByFileName("NotifyChangedTemplate.NotifyBase.txt"));
        attributes.Add("AopMethod", Utils.GetTemplateByFileName("AopTemplate.AopMethod.txt"));

        foreach (var item in attributes)
        {
            context.AddSource(item.Key, SourceText.From(item.Value, Encoding.UTF8));
        }
    }

    public void Initialize(GeneratorInitializationContext context)
    {

    }
}
